package it.mercatino.catalogo;

import it.mercatino.categorie.CategoriaUtil;
import it.mercatino.hibernate.Categoria;
import it.mercatino.hibernate.Utente;

import java.util.List;
import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

/**
 * Action che viene richiamata per visualizzare la pagina principale
 * del catalogo con l'albero delle categorie o con l'elenco degli
 * inserzionisti.
 * 
 * @author Marco
 *
 */
public class Catalogo1Action extends ActionSupport {
	
	private static final long serialVersionUID = 1L;
	
	private List<Categoria> alberoCategorie;
	private List<Utente> inserzionisti;
	private boolean messaggio = false;
	
	/**
	 * Visualizza l'albero delle categorie.
	 * 
	 * @return "success"
	 */
	public String execute() {
		if (messaggio)
			addActionError("Il prezzo minimo e massimo devono essere dei numeri!");
		Map session = ActionContext.getContext().getSession();
		session.put("lastNews", CatalogoUtil.getInstance().getLastArticoli());
		session.put("categorie", CategoriaUtil.getInstance().getCategorie());
		alberoCategorie = CategoriaUtil.getInstance().getAlberoCategorie();
		return SUCCESS;
	}
	
	/**
	 * Visualizza l'elenco degli inserzionisti.
	 * 
	 * @return "success"
	 */
	public String inserzionisti() {		
		inserzionisti = CatalogoUtil.getInstance().getInserzionisti();
		return SUCCESS;
	}	

	/**
	 * @return the alberoCategorie
	 */
	public List<Categoria> getAlberoCategorie() {
		return alberoCategorie;
	}

	/**
	 * @param alberoCategorie the alberoCategorie to set
	 */
	public void setAlberoCategorie(List<Categoria> alberoCategorie) {
		this.alberoCategorie = alberoCategorie;
	}

	/**
	 * @return the inserzionisti
	 */
	public List<Utente> getInserzionisti() {
		return inserzionisti;
	}

	/**
	 * @param inserzionisti the inserzionisti to set
	 */
	public void setInserzionisti(List<Utente> inserzionisti) {
		this.inserzionisti = inserzionisti;
	}

	/**
	 * @return the messaggio
	 */
	public boolean isMessaggio() {
		return messaggio;
	}

	/**
	 * @param messaggio the messaggio to set
	 */
	public void setMessaggio(boolean messaggio) {
		this.messaggio = messaggio;
	}
	
}
